﻿using System;
using System.Collections.Generic;
using System.Text;
using ITAP.ShprossesBuilder.Modelling.Components;
using System.ComponentModel;
using ITAP.ShprossesBuilder.Modelling;
using System.Drawing;

namespace ITAP.ShprossesBuilder.ShprossesPropertyGrid.ComponentsProxy
{
    public class ModelContainerProxy : Proxy
    {
        private ModelContainer modelContainer;
        public ModelContainerProxy(MainControl mainControl, ModelContainer modelContainer) : base(mainControl)
        {
            this.modelContainer = modelContainer;
        }

        //[Category("Размеры ячеек"), DisplayName("Ширина"), Description("Ширина ячеек.")]
        //public double CellWidth
        //{
        //    get
        //    {
        //        return Math.Round(this.modelContainer.ModelCellsSize.Width, 1, MidpointRounding.ToEven);
        //    }
        //    set
        //    {
        //        this.ExecutePropertyValueChangingCommand();
        //        this.modelContainer.ModelCellsSize = new System.Drawing.SizeF((float)value, this.modelContainer.ModelCellsSize.Height);
        //    }
        //}

        //[Category("Размеры ячеек"), DisplayName("Высота"), Description("Высота ячеек.")]
        //public double CellHeight
        //{
        //    get
        //    {
        //        return Math.Round(this.modelContainer.ModelCellsSize.Height, 1, MidpointRounding.ToEven);
        //    }
        //    set
        //    {
        //        this.ExecutePropertyValueChangingCommand();
        //        this.modelContainer.ModelCellsSize = new System.Drawing.SizeF(this.modelContainer.ModelCellsSize.Width, (float)value);
        //    }
        //}

        //[Category("Размеры ячеек"), DisplayName("Авторазмер"), Description("Определение автоматического размера для ячеек.")]
        //public bool AutoCellSize
        //{
        //    get
        //    {                
        //        return modelContainer.AutoCellSize;
        //    }
        //    set
        //    {
        //        this.ExecutePropertyValueChangingCommand();
        //        modelContainer.AutoCellSize = value;
        //    }
        //}

        [Category("Дистанция между моделями"), DisplayName("По горизонтали"), Description("Выставление минимальной горизонтальной дистанции между моделями в миллиметрах.")]
        public double GapBetweenModelCellsHorizontal
        {
            get
            {
                return modelContainer.HorizontalModelCellMargin;
            }
            set
            {
                modelContainer.HorizontalModelCellMargin = value;
                modelContainer.RecalculateCells();
            }
        }

        [Category("Дистанция между моделями"), DisplayName("По вертикали"), Description("Выставление минимальной вертикальной дистанции между моделями в миллиметрах.")]
        public double GapBetweenModelCellsVertical
        {
            get
            {
                return modelContainer.VerticalModelCellMargin;
            }
            set
            {
                modelContainer.VerticalModelCellMargin = value;
                modelContainer.RecalculateCells();
            }
        }

    }
}
